//引入Vue
import Vue from "vue"
//引入Vuex
import vuex from "vuex"
//应用Vuex
Vue.use(vuex)

//准备state，用于存储数据
const state = {
	webSocketUtil:{
		fromUser: '',
		toUser: '',
		userList: []
	},
	loginUser: {
		loginStatus:false, 
		token: undefined,
		tokenName: undefined,
		
		userBaseInfo:{ //用户基本信息：昵称、粉丝、关注、简介等
			userName: undefined,
			id: undefined,
			avatar: undefined,
			nickname: "",
			userName:'',
			isVip: false,
			concernCount: 20,
			background: "https://img1.baidu.com/it/u=3579885558,1908697717&fm=253&fmt=auto&app=120&f=JPEG?w=1422&h=800",
			concernList:[
			],
			fansCount: 20,
			fansList:[
			],
			tagList: [],
			introduce:'',
			blogUrl:null, //博客地址，可以是技术社区也可以是自己的网站也可以是新浪
			geo:null, //位置
			
			//用户个人信息，包括学校、年龄、性别等
			ownInfo:{
				age:null,
				sex:null,
				school:'',
				major:'',
			},
		},
		
		userOtherInfo:{ //用户其他信息，主要是经历
			activities: [
			],
			itemsExprience:[
				{
					itemName:null,
					leader:null,
					timeRange:null,
					prize:null
				}
			]
		},
		
		postList:[ //用户发的帖子
			{
				id:null, //数据库中文章id，点击时通过此id获取文章具体信息然后渲染到帖子
				theme:null,
				introduce:null,
				interactions:[], // 长度为3的int数组, 0-->帖子点赞量, 1-->评论数, 2-->收藏数
				tags:[]
			}
		],
		
		myThoughts:[ //用户在广场发的动态的汇总，在用户主页里不显示用户头像昵称等信息，进广场和详情页才显示
			{
				id:null, //设想是通过id来获取每个动态的详情
				pics:'', //动态封面，只发该动态第一张
				content:[], //动态内容，这个只接收前15个字
				interactions:[], //长度为2的int数组，0-->点赞量， 1-->评论量
				time:'', //该动态发布的时间
			},
			{
				
			}
		],
		//collections:[], //一个int数组，
		likeList:[], //喜欢列表，存喜欢的文章的key
		
		articleTotal: null,
		articles:[
			{
				id: 1,
				cover: "https://p6.itc.cn/images01/20210326/d48e7395c21a4f82ba0f77789b93d4f9.jpeg",
				title: "Vue笔记",
				intro: "Vue是什么？Vue是一套用于构建用户界面的渐进式JavaScript框架渐进式：Vue可以自底向上逐层应用，它的核心库轻量，只关心图层，便于与第三方库或既有项目整合。应对简单应用：只需一个轻量小巧的核心库应对复杂应用：可以引入Vue插件",
				time:'2023-4-2',
				likeCount: 20,
				comment: 20
			}
		],
		team:[],
		joinTeam:[],
		msgList:[
		],
		historyList:[]
	},
	
	userThoughtsData:{ //用户动态详情页
		user: [
			{
				nickName: null,
				avatar: null, //string
				cover: ['',''], //封面图，所有, string
				content: null, //动态内容
				tags: [], //动态tag
				interaction:{ //动态交互数据
					likeCount: 0,
					commentCount: 0
				},
			}
		],
		commentsList:[ //评论区
			{
				commentatorId: 0,
				commentator: "", //层主昵称
				commentatorAvatar: "", //层主头像
				commentContent: "", //评论内容
				commentInteractions:{ //评论交互数据
					likeNum: 0,
					commentNum: 0,
				},
				childrenComments:[ //层中层
					{
						childCommentatorId: 0, //子评论者id
						toWhom: "", //评论哪个用户？,昵称
						beCommentedId: 0, //层中层里被评论者的id
						childCommentator: "", //昵称
						childCommentatorAvatar: "" ,
						childCommentContent: "",
						childCommentLikeCount: 0, //子评论点赞量
					},
					{
						
					}
				]
			}
		]
	},
	allCompetitionTeam:[
		{
			id: "",
			title:"",
			description: "",
			scale: "",
			cover: "",
			typeId: "",
			schoolId: "",
			deadline: "",
			gmCreate: "",
			gmModified: "", //调整
			createBy: "",
			updateBy: "",
			isDeleted: ""
		}
	],
	allActivities:[
	], //首页的活动页
}

const getter = {}


//准备actions,用于响应组件中的动作
const actions = {
	// WebSocket_init({
	// 	commit
	// }, url){
	// 	commit('WebSocket_init', url)
	// },
	// webSocket_close({
	// 	commit
	// }){
	// 	commit('webSocket_close')
	// }
}

//准备mutations，用于操作数据（state）
const mutations = {
	// WebSocket_init(state, url){
	// 	state.webSocketUtil.scoketTask = uni.connectSocket({
	// 				url: url,
	// 				header:{
	// 					xdzn_token: state.loginUser.token
	// 				},
	// 				success: (res) => {
	// 					console.log('ws连接成功')
	// 					state.webSocketTask.flag = true
	// 				},
	// 				fail: (res) => {
	// 					console.log('ws链接失败', res)
	// 				}
	// 			})
				
	// 	if(state.webSocketTask.flag){
	// 		//this.listenMessage()
	// 		state.webSocketUtil.socketTask.onOpen((res) => {
	// 			console.log('ws链接已经成功打开', res)
	// 			//this.resetHeart()
	// 			state.webSocketUtil.socketTask.onMessage(res => {
	// 				console.log(res)
	// 				console.log('监听中---------------------')
	// 				//console.log(this.sendObj)
	// 				let msg = JSON.parse(res.data)
	// 				console.log(msg)
	// 				state.webSocketUtil.fromUser = msg.fromUser
	// 			})
	// 		})
	// 		state.webSocketUtil.socketTask.onError((res) => {
	// 			console.log('ws链接出现错误', res)
	// 		})
	// 	}
	// },
	// webSocket_close(state){
	// 	if(!state.webSocketUtil.webSocketTask){return;}
	// 	state.webSocketUtil.webSocketTask.close({
	// 		success: (res)=>{
	// 			console.log('ws链接已成功关闭')
	// 		},
	// 		fail:(err) => {
	// 			console.log('遇到错误，关闭失败')
	// 		}
	// 	})
	// }
}



//创建并暴露store
const store = new vuex.Store({
    //注意重名可以使用简写形式
    actions: actions,//配置
    mutations: mutations,//配置
    state: state,//初始化数据
    getter: getter
})
export default store